import {
	listAllUnitmeasure
} from "@/api/common/commonApi";

/**
 * 显示消息提示框
 * @param content 提示的标题
 */
export function toast(content) {
	uni.showToast({
		icon: 'none',
		title: content
	})
}

/**
 * 显示模态弹窗
 * @param content 提示的标题
 */
export function showConfirm(content) {
	return new Promise((resolve, reject) => {
		uni.showModal({
			title: '提示',
			content: content,
			cancelText: '取消',
			confirmText: '确定',
			success: function(res) {
				resolve(res)
			}
		})
	})
}

/**
 * 参数处理
 * @param params 参数
 */
export function tansParams(params) {
	let result = ''
	for (const propName of Object.keys(params)) {
		const value = params[propName]
		var part = encodeURIComponent(propName) + "="
		if (value !== null && value !== "" && typeof(value) !== "undefined") {
			if (typeof value === 'object') {
				for (const key of Object.keys(value)) {
					if (value[key] !== null && value[key] !== "" && typeof(value[key]) !== 'undefined') {
						let params = propName + '[' + key + ']'
						var subPart = encodeURIComponent(params) + "="
						result += subPart + encodeURIComponent(value[key]) + "&"
					}
				}
			} else {
				result += part + encodeURIComponent(value) + "&"
			}
		}
	}
	return result
}

// 验证对象是否为空
export function isEmpty(obj) {
	if (typeof obj == "undefined" || obj == null || obj == "") {
		return true;
	}
	return false;
}

export function isNotEmpty(obj) {
	return !isEmpty(obj);
}

/**
 * 单位转换
 */
export function convertUnitmeasure(key) {
	if (isEmpty(key)) {
		return '';
	}
	let unitmeasureList = uni.getStorageSync('unitmeasure');
	if (unitmeasureList) {
		let unitmeasure = unitmeasureList.find(item => item.measureCode === key);
		return isNotEmpty(unitmeasure) ? unitmeasure.measureName : '';
	} else {
		listAllUnitmeasure().then(res => {
			uni.setStorage({
				key: 'unitmeasure',
				data: res.data,
				success: (result) => {},
				fail: (error) => {}
			})
		})
	}
}

/**
 * 保存缓存
 */
export function saveCache(key, data) {
	if (isEmpty(key)) {
		return;
	}
	uni.setStorage({
		key: key,
		data: data,
		success: (result) => {

		},
		fail: (error) => {

		}
	})
}
/**
 * copy属性
 * @param {源对象} source 
 * @param {要复制的对象} target 
 * @param {要复制的属性} keys 
 */
export function copyProperties(source, target, ...keys){
	keys.forEach(key => {
		if (source.hasOwnProperty(key)) {
			target[key] = source[key];
		}
	});
};